package com.secxiot.provider.communication.service;

import com.secxiot.provider.communication.dto.CommunicationCreateDto;
import com.secxiot.provider.communication.dto.CommunicationDetailCreateDto;
import com.secxiot.provider.communication.vo.*;

import java.util.List;

public interface CommunicationService {

    List<CommunicatePatientVo> getPatientList(Long userId, String userType, String patientName, long pageNo,
                                              Long pageSize);

    List<CommunicateDoctorVo> getDoctorList(Long patientId, String doctorName, long pageNo, Long pageSize);

    Long createCommunication(CommunicationCreateDto communicationCreateDto);

    Long createCommunicationDetail(CommunicationDetailCreateDto communicationCreateDetailDto);

    /**
     * 获取主题列表
     *
     * @param userId    登录用户id
     * @param userType  登录用户类型，字典00001
     * @param title     主题标题
     * @param doctorId  医生/护士id
     * @param patientId 患者id
     * @param pageNo    页码
     * @param pageSize  条数
     * @return
     */
    List<CommunicationVo> getCommunicationlist(Long userId, String userType, String title, Long doctorId,
                                               Long patientId, long pageNo, Long pageSize);

    List<CommunicationDetailVo> getCommunicationDetaillist(Long readUserId, Long communicationId, long pageNo, Long pageSize);

    /**
     * 未读数量统计
     *
     * @param readUserId 获取人id
     * @return
     */
    CommunicationUnreadCount getUnreadCount(Long readUserId, String userType);

    boolean updateCommunicationReadFlag(Long communicationId, Long readUserId);

    boolean deleteCommunication(Long userId, Long communicationId);

    boolean updateUserExtro(Long userId, String memo, String beds);

    List<CommunicationTalkVo> getcommunicationTalklist(Long talkUserId, Long user, long pageNo, Long pageSize);

    Long sendTalkMessage(Long talkUserId, Long user, String content, Integer contentType);
}
